#ifndef GY_SYSTEMCLOCK_H
#define GY_SYSTEMCLOCK_H

#include "GY_BasicsCalculators.h"
#include <QTimer>

class GY_CONTROLLIBRARY_EXPORT GY_SystemClock : public GY_BasicsCalculators
{
    Q_OBJECT

public:
    explicit Q_INVOKABLE GY_SystemClock(const QString &guid,QGraphicsItem *parent = nullptr);
    ~GY_SystemClock(){
        m_pTimer->stop();
    };

private:
    /**
     * @brief initializationPropertyInfo 初始化属性信息
     */
    void initializationPropertyInfo();
    /**
     * @brief updateCurrentTimeCapacity 更新时间字符长度
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateCurrentTimeCapacity(const QString &name, const QVariant &value);
    /**
     * @brief updateCurrentTime 更新时间字符
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateCurrentTime(const QString &name, const QVariant &value);
    /**
     * @brief updateCurrentDateCapacity 更新日期字符长度
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateCurrentDateCapacity(const QString &name, const QVariant &value);
    /**
     * @brief updateCurrentDate 更新日期字符
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateCurrentDate(const QString &name, const QVariant &value);
    /**
     * @brief updateFrequency 更新频率
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateFrequency(const QString &name, const QVariant &value);

private:
    //定时器
    QTimer *m_pTimer;

};

#endif // GY_SYSTEMCLOCK_H
